1. Field of the Invention
The present invention generally relates to the field of data transmission systems for digital communications and more particularly to the verification, optimization and/or management of multicast data transmissions over a network.
2. Brief Description of the Related Art
Internet Protocol (IP) multicasting provides a useful way for a source to transmit a stream of data to a group of recipients. Traditional network computing applications transmit data employing a unicast design. Unicast communications send one copy of each data packet to each intended recipient. However, unicast presents scaling problems, when the group of recipients is large. In unicast, the network must carry multiple copies of the same data, thus requiring additional bandwidth for data transmission. In contrast, IP multicasting (also referred to simply as “multicasting”) transmits only one copy of the data packets and allows multicast enabled routers to do the work required to deliver that packet to each intended recipient. Further information on multicasting is provided in U.S. Pat. No. 6,501,763, which is incorporated herein by reference.
Multicast uses the concept of a group to route its data. A group of receivers subscribe to a particular multicast transmission. The individual receivers of the group need not physically or geographically be located near one another. Similarly, the data can be transmitted to the group from one or more sources located virtually anywhere, as long as they can communicate with the receivers, through a common network of computers, such as the Internet. Rather than transmitting multiple copies of data packets to each receiver, as in unicast, multicast transmits one copy of its data packets to a group address: Multicast group addresses are reserved IP addresses in the range of 224.0.0.0-239.255.255.255.
The Internet comprises among other things, a network of routers that pass-along and route data. This network of routers is commonly referred to as the Internet backbone. Within the Internet backbone is a subset of multicast-enabled routers, that are programmed to handle IP multicast routing. Multicast-enabled routers are unique in that they can handle both multicasting and unicasting protocols. Multicasting is governed by its own distinct protocols. Groups of multicast-enabled routers can be connected to each other by virtual point-to-point links called tunnels. The tunnels provide passage for multicast traffic through one or more non-multicast-enabled routers, encapsulating the packets so that they appear to be normal unicast packets to the intervening router(s). The encapsulation is added at the beginning of the tunnel and removed at the end of that tunnel. In this way, a group of multicast-enabled routers can be connected to other multicast-enabled routers.
Data loss in multicasting has various sources, such as congestion in the network and Internet Service Providers (ISPs) improperly conveying multicast packets, but potentially a more significant impact then in unicasting. The distribution of routers in a multicasting session generally has a tree-like configuration with numerous branches. This is generally referred to as the multicast distribution tree. In this configuration, due to the nature of multicast when packets are lost in transit, all recipients on downstream branches from that point lose the same packet(s).
Each source in a multicast group transmits data which is associated with that source's IP address and the designated multicast group's IP address. This address pair is generally represented by the notation (S,G), where S is a source IP address and G is the group IP address. This address pair (S,G) also represents the distribution tree of routers (referred to as a “source distribution tree”) from the specified source to all last hop routers (receivers) in the group. No two sources transmitting to the same multicast group should have the same (S,G) IP address pairing.
Another aspect of multicasting is that in order to maximize efficiencies, multicast-enabled routers will often designate a Rendezvous Point (RP) router within the network for a particular group. The RP routers are multicast enabled routers that form a focal point for receipt and redistribution of the data packets that are the multicast transmission for a particular multicast group. Because the data packets from all sources in the multicast group are re-transmitted from the RP, the notation (*,G) is used to represent the shared multicast distribution tree from this point (referred to as a “shared distribution tree”). The wildcard notation “*” refers to all sources for the group (G).
Members of a multicast group can join or leave at any time, so the distribution trees in multicast can be dynamic. When all the receivers on a particular branch stop requesting receipt of the multicast transmission, the multicast-enabled routers prune that branch and potentially reconfigure the distribution tree. Similarly, when new receivers request to join a group, branch additions and reconfiguration may be necessary.
An example of a simple network of multicast-enabled routers is shown in FIG. 1. The routers are each labeled with their respective router names. In this example, multicast traffic from a single source router 50 travels to RP router 10, with the path taken by the transmitted data packets indicated by dashed lines. The configuration of routers followed by the dashed lines represents a source distribution tree for this multicast group. In fact, since the source router 50 is the only source for this group, the dashed lines represent the only source distribution tree for this group. If additional sources were to join the group, the data packets from that source would be sent to the RP router 10. Once received by the RP router 10 the data packets are then redistributed to all receivers along the shared distribution tree, which is represented by the solid connector lines. In this simple network there are six active receiver routers 50, 60, 61, 62, 63, 64. The number of routers that make up a multicast network can be greater or smaller than that shown in this example. Similarly, the number of sources or receivers can vary dramatically. Further, the number of sources is independent from the number of receivers. Although, often in multicast the source routers also act as receivers in the same multicast group, as is the case in this sample multicast network shown in FIG. 1. Additionally, it should be noted that the router path from a source router 50 to RP router 10, is not necessarily reversed in order to redistribute data packets to a source router acting as a receiver router 50. This is demonstrated in FIG. 1 by the fact that the dashed lines do not follow the same exact path as the solid lines. Also, although the illustration in FIG. 1 is helpful in visualizing a multicast network, no real-time tool currently exists that provides such visualization, even in distribution tree layout, of an active multicast network.
One particular problem in multicasting is the verification of whether data has been received by all intended recipients. It is difficult to determine which routers along the transmission path received and forwarded their data as intended. As such, network administrators must wait to hear about problems from hosts or intended recipient users that report them. In other words, rather than performing proactive trouble prevention, network administrators generally troubleshoot after a problem has impacted the customer. This occurs mainly because network administrators lack effective tools for monitoring, managing and preventing data loss.
Currently, network administrators/operators manage (i.e., debug or troubleshoot) multicast routing problems by reviewing multicast routing table entries. Multicast routers maintain state information about the incoming and outgoing interfaces for each (S,G) pair, as well as the shared distribution tree (*,G). For a router, state information is used by the router to decide which packets to discard or which packets to forward and how to forward them. Generally, after hearing about a problem impacting a multicast group, operators investigate by accessing individual routers active for that group. This is a cumbersome and time consuming process that requires the administrator to login to an individual router, analyze routing table data stored in that router and then repeat this process with additional routers, if necessary. The selected router may not turn out to be the source of the problem, which will require the administrator to login to additional routers until the problem is identified. This type of troubleshooting is generally performed using a command line interface (CLI) at a user computer terminal with Internet access.
By entering specific commands, the administrator is able to login to an individual router and view network management data stored therein, such as its routing table. Using CLI, the administrator, after logging-into a specific router, can enter numerous commands, such as the “show ip mroute” command. This particular command displays the full content of the IP multicast routing table. This is useful to network administrators as it shows a great deal of information about a single router, by running a single command. However, the output from this command can potentially include thousands of routing table entries, which becomes unmanageable as a quick reference tool. In addition, the output is only a display and does not provide links to further information on related routers, such as RP, data source or neighboring routers. In order for an administrator to conduct follow-up monitoring or investigation of related routers, he or she must take note of the IP addresses of the desired router(s) and then individually login to those one at a time.
Having to manually login to each router makes it very difficult for administrators to quickly identify problems or analyze conditions across a multicast group network in real-time. In fact, the conventional method makes comparison or analysis of more than just a few network resources difficult or at least impractical in a real-time network environment. Also, it makes it difficult to envision or get an overall picture of the current active network topology in a multicast group, which would otherwise assist in monitoring that group.
The Simple Network Management Protocol (SNMP) is a well-known application layer protocol that is used to access and/or exchange management information between network devices. Network administrators use this protocol to view or access information needed to manage a network. However, SNMP is not used by network operators to view multicast router information because, in contrast to the CLI method, it does not provide a quick and simple method of compiling the extensive routing table data maintained for a router. A more detailed background on SNMP is provided in Rose, Marshall T., “The Simple Book: An Introduction to Networking Management”, Prentice Hall, 2nd Ed., 1996, which is incorporated herein by reference.